home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 2001 May / SGI Freeware 2001 May - Disc 1.iso / dist / fw_teTeX.idb / usr / freeware / bin / mktexmf.z / mktexmf
Text File  |  2001-01-10  |  4KB  |  137 lines

  1. #!/bin/sh
  2. # original mktexmf -- make a new MF file, because one wasn't found.
  3. # (If you change or delete the word `original' on the previous line,
  4. # installation won't write this script over yours.)
  5. # te@informatik.uni-hannover.de, kb@mail.tug.org, and infovore@xs4all.nl.
  6. # Public domain.
  7.  
  8. version='$Id: mktexmf,v 1.21 1999/05/30 18:57:41 olaf Exp $'
  9. progname=`echo $0 | sed 's%.*/%%'`
  10. usage="Usage: $progname FONT.
  11.  
  12. Makes the Metafont source file for FONT, if possible. For example,
  13. \`ecr12' or \`cmr11'."
  14.  
  15. # Common code for all scripts.
  16. : ${MT_TEXMFMAIN=`kpsewhich --expand-path='$TEXMFMAIN'`}
  17. : ${MT_MKTEX_OPT=`kpsewhich --format='web2c files' mktex.opt`}
  18. test -n "$MT_MKTEX_OPT" || MT_MKTEX_OPT="$MT_TEXMFMAIN/web2c/mktex.opt"
  19. if test ! -f "$MT_MKTEX_OPT"; then
  20.   echo "$progname: Cannot find mktex.opt; check your installation." >&2
  21.   exit 1
  22. fi
  23.  
  24. . "$MT_MKTEX_OPT"
  25.  
  26. (
  27. # See comments in mktexpk.
  28. name="`echo $1 | sed 's%.*/%%; s%\.mf$%%'`"
  29. rootname=`echo "$name" | sed 's/[0-9]*$//'`
  30. pointsize=`echo "$name" | sed "s/^$rootname//"`
  31.  
  32. sauterroot=`kpsewhich b-$rootname.mf 2>/dev/null`
  33. if test -n "$sauterroot"; then
  34.   rootfile=$sauterroot
  35.   rootname=b-$rootname
  36. else
  37.   case $rootname in
  38.     cs*|lcsss*|icscsc*|icstt*|ilcsss*)
  39.        rootfile=`kpsewhich cscode.mf`;;
  40.     wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]|l[abchl][bcdfiorstuvx]*)
  41.        lhprefix=`echo "$name" | sed 's/^\(..\).*/\1/'`
  42.        rootfile=`kpsewhich ${lhprefix}codes.mf 2>/dev/null`;;
  43.     *)
  44.        rootfile=`kpsewhich $rootname.mf 2>/dev/null`;;
  45.   esac
  46. fi
  47. { test -z "$rootfile" || test ! -f "$rootfile"; } && exit 1
  48.  
  49. #if test -z "$MT_MFNAME"; then
  50. OIFS=$IFS; IFS=$SEP
  51. set x `"$MT_MKTEXNAM" $name`; shift
  52. IFS=$OIFS
  53. MT_MFNAME="$3"
  54. #fi
  55.  
  56. destdir=`echo "$MT_MFNAME" | sed 's%/[^/][^/]*$%%'`
  57. test -d "$destdir" || "$MT_MKTEXDIR" "$destdir" || exit 1
  58. cd "$destdir" >/dev/null 2>&1 || exit 1
  59.  
  60. case "$pointsize" in
  61.   "") echo "$progname: no pointsize."; exit 1;;
  62.   11) realsize=10.95;;      # \magstephalf
  63.   14) realsize=14.4;;  # \magstep2
  64.   17) realsize=17.28;; # \magstep3
  65.   20) realsize=20.74;; # \magstep4
  66.   25) realsize=24.88;; # \magstep5
  67.   30) realsize=29.86;; # \magstep6
  68.   36) realsize=35.83;; # \magstep7
  69.         # The new convention is to have three or four letters for the
  70.         # font name and four digits for the pointsize. The number is
  71.         # pointsize * 100. We effectively divide by 100 by ignoring the
  72.         # last two digits.
  73.   ????|?????) realsize=`echo "$pointsize" | sed 's/\(..\)$/.\1/'`;;
  74.   *) realsize="$pointsize";;
  75. esac
  76.  
  77. mfname="$name.mf"
  78. if test -r "$mfname"; then
  79.   echo "$progname: $destdir/$mfname already exists."
  80.   echo "$destdir/$mfname" >$STDOUT
  81.   "$MT_MKTEXUPD" "$destdir" "$mfname"
  82.   exit 0
  83. fi
  84.  
  85. case "$name" in
  86.   ec*|tc*)
  87.     cat > "mf$$.tmp" <<END
  88. if unknown exbase: input exbase fi;
  89. gensize:=$realsize;
  90. generate $rootname;
  91. END
  92.     ;;
  93.   dc*)
  94.     cat > "mf$$.tmp" <<END
  95. if unknown dxbase: input dxbase fi;
  96. gensize:=$realsize;
  97. generate $rootname;
  98. END
  99.     ;;
  100.   cs*|lcsss*|icscsc*|icstt*|ilcsss*)
  101.     cat > "mf$$.tmp" <<END
  102. input cscode
  103. use_driver;
  104. END
  105.     ;;
  106.   wn[bcdfirstuv]*|rx[bcdfiorstuvx][bcfhilmostx]*|l[abchl][bcdfiorstuvx]*)
  107.     cat > "mf$$.tmp" <<END
  108. input fikparm;
  109. END
  110.     ;;
  111.   g[lorst][ijmtwx][cinou]*)
  112.     # A small superset of the names of the cbgreek fonts.
  113.     cat > "mf$$.tmp" <<END
  114. gensize:=$realsize;
  115. input $rootname;
  116. END
  117.     ;;
  118.   *)
  119.     cat > "mf$$.tmp" <<END
  120. design_size := $realsize;
  121. input $rootname;
  122. END
  123.     ;;
  124. esac
  125.  
  126. chmod `kpsestat -xst,go-w .` "mf$$.tmp"
  127. rm -f "$mfname"
  128. mv "mf$$.tmp" "$mfname"
  129.  
  130. echo "$destdir/$mfname" >$STDOUT
  131. echo "$progname: $destdir/$mfname: successfully generated." >&2
  132. "$MT_MKTEXUPD" "$destdir" "$mfname"
  133. exit 0
  134. ) 1>&2 </dev/null
  135.